/*
 *二进制作业
 *
 */

#include<stdio.h>

int sqr(int a, int n) {
	int sqr = 1;
	for (int i = 0; i <= n; sqr = sqr * a) {
//		printf("2^%d=%d\n", i, sqr);
		i++;
	}
	return sqr;
}

int main() {
	printf("输入一个十进制整数\n");
	int num = 0;
	scanf("%d", &num);
	const int max = 8;
	int a[max];

	for (int i = 0; i < max; i++) {
		a[i] = 0;
	}

	if (num >= sqr(2, max)) {
		printf("超量程");
	}
	else {
		for (int j = max - 1; j >= 0; j--) {
			if (num >= sqr(2, j)) {
				a[j] = 1;
			}
			else {
				a[j] = 0;
			}
			num = num % sqr(2, j);
		}
		//找到第一个非０的数组
		int is_zero = 0;
		for(is_zero = max - 1; is_zero >= 0; is_zero--) {
			if (a[is_zero] == 1){
				break;
			}
		}

		//打印结果
		printf("二进制表示是：");
		for (;is_zero >= 0; is_zero--) {
			printf("%d", a[is_zero]);
		}

	}
	printf("\n");

	return 0;
}
